/* Phan so thuc hien cac phep tinh cong, tru, nhan, chia*/ #include #include #define MAX 10 typedef struct Phanso { int Tuso; int Mauso; }phanso; phanso ps[MAX]; int i; //-------- Khai bao prototype --------- void Nhap(int n); //Ham nhap n phan so int UCLN(int a, int b);//Ham tim UCLN cua 2 so void Rutgon(phanso *s); //Ham rut gon 2 phan so void Inra(phanso s); //In phan so phanso Cong2ps(phanso x,phanso y);//Ham tinh tong 2 phan so phanso Tru2ps(phanso x,phanso y);//Ham tinh hieu 2 phan so void Cong_Tru(int n);//Ham tinh tong, hieu n phan so phanso Nhan2ps(phanso x,phanso y);//Ham tinh tich 2 phan so void Nhan_Chia(int n); //Ham tinh tich, thuong n phan so //-------- NHAP n PHAN SO -------- void Nhap(int n) { for(i=0;ib?(a=a-b):(b=b-a); return a; } //-------- RUT GON 1 PHAN SO ----- void Rutgon(phanso *s) { int temp=UCLN(s->Tuso,s->Mauso); s->Tuso/=temp; s->Mauso/=temp; } //--------- CONG 2 PHAN SO ------- phanso Cong2ps(phanso x,phanso y) { phanso s; s.Tuso=((x.Tuso*y.Mauso)+(y.Tuso*x.Mauso)); s.Mauso=(x.Mauso*y.Mauso); Rutgon(&s); return s; } //--------- TRU 2 PHAN SO ------- phanso Tru2ps(phanso x,phanso y) { phanso s; s.Tuso=((x.Tuso*y.Mauso)-(y.Tuso*x.Mauso)); s.Mauso=(x.Mauso*y.Mauso); Rutgon(&s); return s; } //--------- CONG TRU n PHAN SO ------- void Cong_Tru(int n) { phanso sum=ps[0],sub=ps[0]; for(i=1;i '3'); switch (traloi) { case '1' : //clrscr(); printf("Co bao nhieu phan so can nhap:"); scanf("%d",&n); Nhap(n); fflush(stdin); tiep++; break; case '2' : //clrscr(); if(tiep==0) { printf("Khong co phan so nao ca !!!"); break; } else Cong_Tru(n); break; case '3' : //clrscr(); if(tiep==0) { printf("Khong co phan so nao ca !!!"); break; } else Nhan_Chia(n); break; } } while (traloi != '0'); getch(); } __________________ //phanso sum=ps[0],sub=ps[0]; // Khong the gan nhu vay duoc //phanso sum = { ps[0].Tuso, ps[0].Mauso };